package org.online.listener;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

import org.online.conmon.Const;
import org.online.entity.User;

/**
 * 在服务器启动时，创建一个Map集合，并存储在上下文对象中
 * 用于存储所有的在线用户
 * 
 * 以上操作，我们交给监听器完成 -- 上下文生命周期监听器
 * 
 * @author Administrator
 *
 */

@WebListener
public class InitMapListener implements ServletContextListener{
	
	/**
	 * 定义Map集合，用于存储所有的登录用户
	 */
	private Map<String, User> map = null ;

	@Override
	public void contextInitialized(ServletContextEvent sce) {
		// 1.通过上下文事件对象，获取上下文对象的实例
		ServletContext context = sce.getServletContext() ;
		
		// 2.实例化map集合
		map  = new HashMap<String, User>();
		
		// 3.把map命令存储到上下文对象中 -- 实现服务器级别的数据共享
		context.setAttribute(Const.ONLINE_USER_MAP, map);
	}

	@Override
	public void contextDestroyed(ServletContextEvent sce) {
		
	}

}
